Modeling Instruction-Level Parallelism for Software Pipelining

نویسندگان

  • Ali-Reza Adl-Tabatabai
  • Thomas R. Gross
  • Guei-Yuan Lueh
  • James Reinders
چکیده

Software pipelining is an attractive method to schedule code for processors that exhibit instruction-level parallelism such as pipelined, super-scalar, and (V)LIW machines. It has been implemented for a variety of processors ( e.g. FPS-164[10], Warp[9], Cydra-5[7]), and a number of pipelining algorithms have been described in the literature. Software pipelining produces a schedule so that the executions of multiple loop iterations are overlapped. Operations from multiple loop iterations are either placed into the same instruction word, or are interleaved, depending on the type of instruction-level parallelism provided in the target architecture. In contrast to other scheduling techniques that rely on loop unrolling to determine the number of iterations to overlap, the degree of overlapping in software pipelining is determined by the exact resource requirements of the loop operations. Thus, accurate modelling of machine resources is especially crucial for software pipelining. Modelling the target machine is easy for idealized machines, but for a real processor, a number of challenges arise. For example:

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Decomposed Software Pipelining: A New Approach to Exploit Instruction Level Parallelism for Loop Programs

This paper presents a new view on software pipelining, in which we consider software pipelining as an instruction level transformation from a vector of one-dimension to a matrix of two-dimensions. Thus, the software pipelining problem can be naturally decomposed into two subproblems, one is to determine the row-numbers of operations in the matrix and another is to determine the column-numbers. ...

متن کامل

Software Pipelining: An Effective Scheduling Technique for VLIW Machines

The basic idea behind software pipelining was first developed by Patel and Davidson for scheduling hardware pipe-lines. As instructionlevel parallelism made its way into general-purpose computing, it became necessary to automate scheduling. How and whether instructions can be scheduled statically have major ramifications on the design of computer architectures. Rau and Glaeser were the first to...

متن کامل

Integrated Register Allocation and Software Pipelining

Software pipelining is a powerful and efficient scheduling technique for exploiting instruction level parallelism in loops, it results in high performance but it increases the register requirements. Two methods are available to reduce the register requirements: increase the schedule length or insert spill code. Traditionally instruction scheduling and register allocation are applied in separate...

متن کامل

Software Pipelining and Superblock Scheduling: Compilation Techniques for VLIW Machines

© Copyright Hewlett-Packard Company 1992 Compilers for VLIW and superscalar processors have to expose instruction-level parallelism to effectively utilize the hardware. Software pipelining is a scheduling technique to overlap successive iterations of loops, while superblock scheduling extracts ILP from frequently executed traces. This paper describes an effort to employ both software pipelining...

متن کامل

Swing Modulo Scheduling

[19] B.R. Rau and C.D. Glaeser. Some scheduling techniques and an easily schedulable horizontal architecture for high performance scientific computing. [22] J. Wang and C. Eisenbeis. Decomposed software pipelining: A new approach to exploit instruction level parallelism for loops programs. In IFIP, January 1993.

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1993